C compiler aided design of application specific instruction set processors using the machine description language LISA
نویسنده
چکیده
Scheduling The problem of all optimizations is to decide if their modifications to the reservation vector are valid or not. I.e. if the constrains for scheduling instructions remain exactly the same before and after the (possibly illegal) optimization. The problem can be solved by converting the reservation vector back into the unambiguous set of relevant issue-multisets. If – after modifying the reservation vector – this set is equal to the set before the modification, the optimization is valid. Thus the validation problem is transformed into the problem on how to generate the set of relevant issue-multisets from a reservation vector. A solution is a technique called abstract scheduling. The pseudocode for the algorithm is depicted in figure 7.13. 84 Chapter 7. Scheduler Generation # The alternatives are an ordered list # of resource sets contained in the reservation vector. function abstractSchedule(val start Z, val state ResourceAllocationState) is final state←−true foreach alternative in alternativesWithIndexGreaterEqual(start) do new state←−state if succeededSchedulingAlternativeIntoNewState(new state,alternative) then is final state←−false abstractSchedule(start+1,new state) end if end foreach if is final state then MultiSet new multiset←−createNewMultisetFrom(state) if(isRelevant(new multisets,new multiset)) appendToRelevantIssueMultisets(new multisets,new multiset) end if end if end function Figure 7.13: Abstract scheduling Its input is a list of all alternative resource sets that are contained in the reservation vector. It recursively simulates the allocation of the contained resources using the ResourceAllocationState data structure. If no more alternatives can be scheduled a multiset is created from the ResourceAllocationState. This is possible because each alternative that constitutes the resource allocation state is associated with a single instruction. In the next step the relevance of the new multiset is checked: A new_multiset Mnew that contains the instruction-set I(Mnew) is assumed to be relevant if there is no other multiset contained in the set of already found multisets C (new_multisets) that contains more instructions than Mnew. Or in other words: Mnew ∈ C is relevant if not ∃Mi ∈ C with I(Mi) ⊃ I(Mnew). If the new_multiset is relevant it is added to new_multisets. It is possible that this addition makes other multisets irrelevant in new_multisets. These multisets are automatically removed using the same criteria. The result of the abstractSchedule function is the set of relevant multisets in the new_multisets data container. This data container has a canonical form and can be compared to a reference container. Note that the performance of the validity check can significantly be enhanced by introducing checks against the reference container into the abstract scheduling algorithm (e.g. number of elements, contained multisets, etc.). Hereby illegal modifications to the reservation vector can quickly be detected. 7.5. Generation of Latency Tables 85
منابع مشابه
A Novel Methodology for the Design of Application-Specific Instruction-Set Processors
The development of application-specific instruction-set processors (ASIP) is currently the exclusive domain of the semiconductor houses and core vendors. This is due to the fact that building such an architecture is a difficult task that requires expertise in different domains: application software development tools, processor hardware implementation, and system integration and verification. Th...
متن کاملModelling with LISA- A Powerful Machine Description Language
The development of application specific instruction set processors comprises several design phases: architecture exploration, software tools design, system verification and design implementation. The LISA processor design platform (LPDP) based on machine descriptions in the LISA language provides one common environment for these design phases. Required software tools for architecture exploratio...
متن کاملCompiler-in-loop Architecture Exploration for Efficient Application Specific Embedded Processor Design
Retargetable C compilers are key tools for efficient architecture exploration for embedded processors. In this paper we describe a novel approach to retargetable compilation based on LISA, an industrial processor modeling language for efficient application-specific instruction set processor (ASIP) design. In order to circumvent the well-known trade-off between flexibility and code quality in re...
متن کاملInstruction Set De nition and Instruction Selection for ASIPsJohan
Application Speciic Instruction set Processors (ASIPs) are eld or mask programmable processors of which the architecture and instruction set are opti-mised to a speciic application domain. ASIPs ooer a high degree of exibility and are therefore increasingly being used in competitive markets like telecommunications. However, adequate CAD techniques for the design and programming of ASIPs are mis...
متن کاملAn Instruction Set Description Language for Retargetability 2 DSP Core Program ROM RAM ASIC
We present the Instruction Set Description Language, ISDL, a machine description language used to describe target architectures to a retargetable compiler. A retargetable compiler is capable of compiling application code into machine code for diierent processors. The features and exibility of ISDL enable the description of vastly diierent architectures such as an ASIP VLIW processor and a comme...
متن کاملRetargetable C Compiler for Network Processors
Application-specific instruction-set processors (ASIP) are widely used in network processors. With a high demand from the market for faster new product development, retargetable compilers, and the associated knowledge, become essential for development. Based on the LCC retagetable C compiler, we added an ASIP target derived from the DLX instruction set, which was successfully used in a network ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004